Skip to content

Add /io-enrich command (Pillar 2) + correct Apollo Twin X I/O#531

Merged
jeffreylouden merged 2 commits into
mainfrom
pillar2-io-enrich
Jul 12, 2026
Merged

Add /io-enrich command (Pillar 2) + correct Apollo Twin X I/O#531
jeffreylouden merged 2 commits into
mainfrom
pillar2-io-enrich

Conversation

@jeffreylouden

@jeffreylouden jeffreylouden commented Jul 12, 2026

Copy link
Copy Markdown
Member

Context

Pillar 2 of the I/O data-quality plan (#212): a repeatable enrichment pipeline that works down the pnpm io-quality worklist using authoritative sources. The report (Pillar 1) finds the bad entries; this fixes them correctly.

What's in here

/io-enrich command (.claude/commands/io-enrich.md) — codifies the manual-first process proven on the Eventide H90:

  • Read the manufacturer manual/QRG panel diagrams (ground truth), checking every panel — front/rear/side — not just the rear.
  • Model one entry per physical jack (maxConnections: 1); never collapse L/R or numbered pairs.
  • Set position and columnPosition/rowPosition from the diagram; exclude non-port controls (power switches, security slots).
  • Verify adversarially — flag ambiguous jack faces to the user rather than guess (the H90 MIDI-side lesson).
  • Validate, check for new W120/W121/W128, cite sources.

Pilot — Universal Audio Apollo Twin X. The old entry had 6 broken io entries; the manual's front/rear panel diagrams gave the real layout:

Before (6) After (11 discrete jacks)
"Two 1/4" Monitor Outs" (collapsed) Monitor Output L, Monitor Output R
"Two 1/4" Line Outs (Alt)" (collapsed) Line Output 3, Line Output 4
Thunderbolt ×2 (split in/out) Thunderbolt 3 (bidirectional)
— (no inputs at all) Mic/Line Input 1 & 2 (combo), Hi-Z Instrument Input
Headphone (Top) Headphone Output (front → Bottom)
everything Top (guessed) front jacks Bottom, rear Top, with column/row

Source: Apollo Twin X Hardware Manual (front/rear panel diagrams).

Verification

  • pnpm validate ✅ (no new warnings on the file), pnpm build ✅ — all 11 jacks land in hardware_io with positions/column/row.

Note

One modeling call worth a look: the rear-panel column/row ordering is read from the manual diagram; the horizontal group order is clear, the fine within-cluster vertical order (left power/optical cluster) is moderate-confidence. Easy to tweak.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added a new /io-enrich enrichment command to correct and validate hardware input/output entries using authoritative references.
    • Improved connector modeling for the Universal Audio Apollo Twin X with front/rear panel mapping, positions, and expanded jack details.
    • Enhanced bidirectional Thunderbolt 3 connectivity modeling.
  • Documentation

    • Added a command guide covering a strict enrichment workflow, source collection, citation requirements, confidence reporting, and how to handle ambiguous jack faces.

Follow-up to #212. Adds the enrichment pipeline that works down the io-quality
worklist using authoritative sources.

- .claude/commands/io-enrich.md: manual-first, verify-don't-guess process for
  fixing/enriching a hardware entry's io (one entry per physical jack; positions
  and column/row from the manual's panel diagrams; adversarial verification).
- Pilot: rewrite Universal Audio Apollo Twin X io from 6 broken entries
  (collapsed output pairs, split Thunderbolt, missing all inputs, uniform Top)
  to 11 discrete jacks with correct front/rear positions and column/row layout,
  sourced from the Apollo Twin X Hardware Manual.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented Jul 12, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 773d80a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
catalog Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions Bot added hardware Changes to hardware catalog entries ready-for-review PR has passed all checks and is ready for review labels Jul 12, 2026
@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 80fefbf7-32ff-45cf-ba77-04002d5b80c7

📥 Commits

Reviewing files that changed from the base of the PR and between dad59e0 and 773d80a.

📒 Files selected for processing (2)
  • .claude/commands/io-enrich.md
  • data/hardware/universal-audio-apollo-twin-x.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
  • data/hardware/universal-audio-apollo-twin-x.yaml
  • .claude/commands/io-enrich.md

Walkthrough

The PR adds a documented /io-enrich workflow for authoritative hardware I/O enrichment and applies it to replace the Apollo Twin X’s simplified connector list with 11 individually modeled, positioned jacks.

Changes

I/O enrichment

Layer / File(s) Summary
Enrichment command workflow
.claude/commands/io-enrich.md, .changeset/io-enrich-command.md
Adds the /io-enrich command, authoritative-source workflow, connector modeling rules, validation requirements, reporting guidance, batch processing instructions, and release note.
Apollo Twin X connector inventory
data/hardware/universal-audio-apollo-twin-x.yaml
Replaces grouped I/O definitions with 11 distinct, positioned connectors, richer connector metadata, and one bidirectional Thunderbolt 3 entry.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

Suggested labels: documentation

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the two main changes: adding /io-enrich and correcting Apollo Twin X I/O data.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pillar2-io-enrich

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
.claude/commands/io-enrich.md (1)

47-50: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Make the manual download explicit and fail closed.

curl -sL streams the response and does not fail on HTTP 4xx/5xx responses. Specify a file path and use --fail --show-error --location before opening the PDF. (curl.se)

Suggested command
- curl -sL "$manual_url"
+ curl --fail --location --silent --show-error \
+   --output "$scratchpad/manual.pdf" "$manual_url"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.claude/commands/io-enrich.md around lines 47 - 50, Update the
manual-download instructions in the manufacturer manual workflow to save the PDF
to an explicit scratchpad file and invoke curl with --fail --show-error
--location before using the Read tool. Ensure failed HTTP responses stop the
workflow rather than allowing an invalid or missing PDF to be opened.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@data/hardware/universal-audio-apollo-twin-x.yaml`:
- Around line 64-94: Correct the rear-panel metadata by reordering the entries
so Optical Input precedes Thunderbolt 3, then set Optical Input to column 1, row
1; Thunderbolt 3 to column 2, row 1; and Power Supply Input to column 2, row 2.
Preserve the existing connection and descriptive fields.

---

Nitpick comments:
In @.claude/commands/io-enrich.md:
- Around line 47-50: Update the manual-download instructions in the manufacturer
manual workflow to save the PDF to an explicit scratchpad file and invoke curl
with --fail --show-error --location before using the Read tool. Ensure failed
HTTP responses stop the workflow rather than allowing an invalid or missing PDF
to be opened.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 32ef33d7-17b4-4dc4-bfa2-678b46708fde

📥 Commits

Reviewing files that changed from the base of the PR and between 7f88241 and dad59e0.

📒 Files selected for processing (3)
  • .changeset/io-enrich-command.md
  • .claude/commands/io-enrich.md
  • data/hardware/universal-audio-apollo-twin-x.yaml

Comment thread data/hardware/universal-audio-apollo-twin-x.yaml Outdated
- Apollo Twin X: the rear panel's left cluster is a 2x2 grid, not a vertical
  stack. Per the Hardware Manual diagram, OPTICAL IN is top-left with the
  Thunderbolt port to its right, and the 12VDC barrel sits below Thunderbolt.
  Reorder Optical before Thunderbolt and set Optical (1,1), Thunderbolt (2,1),
  Power (2,2). The margin callout numbering (22/21/20) was misread as a stack.
- /io-enrich: download manuals with `curl --fail --show-error --location` to an
  explicit scratchpad path so an HTTP error stops the workflow instead of
  saving an error page that Read would open as a bogus PDF.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jeffreylouden jeffreylouden merged commit ef2316e into main Jul 12, 2026
10 checks passed
@jeffreylouden jeffreylouden deleted the pillar2-io-enrich branch July 12, 2026 13:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hardware Changes to hardware catalog entries ready-for-review PR has passed all checks and is ready for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant